package model

import (
	"time"
)

// Item 物品模型
// 表示游戏中的各种物品

type Item struct {
	ID          int64     `json:"id" gorm:"primaryKey;autoIncrement"`
	Name        string    `json:"name" gorm:"size:100;not null"`
	Type        string    `json:"type" gorm:"size:50;not null"` // 物品类型：材料、丹药、法宝、符箓等
	Description string    `json:"description" gorm:"size:500"`
	Effect      string    `json:"effect" gorm:"size:500"`        // 物品效果描述
	MaxStack    int       `json:"max_stack" gorm:"not null;default:99"` // 最大堆叠数量
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
}

// UserItem 用户物品模型
// 表示用户拥有的物品

type UserItem struct {
	ID        int64     `json:"id" gorm:"primaryKey;autoIncrement"`
	UserID    int64     `json:"user_id" gorm:"not null;index"`
	ItemID    int64     `json:"item_id" gorm:"not null;index"`
	Quantity  int       `json:"quantity" gorm:"not null;default:1"`
	AcquiredAt time.Time `json:"acquired_at"`

	// 关联物品信息
	Item *Item `json:"item" gorm:"foreignKey:ItemID"`
}